;.

;;;
;;; HEAD FEATURES
;;;
noun := head &
 [MOD < >,
  TONE tone &
	  [LEX-TONE high-low,
	   CONST +]].

oblique-noun := noun.

verb := head &
 [MOD < >,
  TONE tone &
		[REL-TONE high-low,
		 CONST -]].
det  := head &
 [MOD < >,
  DEFINITENESS bool].
adj := head &
 [MOD <[ ]>].
prep := head &
 [MOD <[ ]>].

pernum := png.	
3sing := pernum.
non3sing := pernum.

high-low := sort.
high := high-low.
low := high-low.

past := tense.
present := tense.
non-past := present.



definiteness := sort.
def:= definiteness.
indef := definiteness.

def-relation := quant-relation.
indef-relation := quant-relation.

adj-relation := arg1-relation .




;;;;;;;; VERB INFLECTION CODES ;;;;;;;;;;;;;;;;;;;;
inflection := sort.
v-infl := inflection.

past-1-r := v-infl.

past-2-r := v-infl.

past-3-r := v-infl.

past-4-r := v-infl.

past-5-rn := v-infl.

past-6-rn := v-infl.

past-7-rn := v-infl.

v1 := past-1-r.
v2 := past-2-r.
v3 := past-3-r.
v4 := past-4-r.
v5 := past-5-rn.
v6 := past-6-rn.
v7 := past-7-rn.

;;; non3sing1= past, non3sing2 = non-past.


non3sing-8-l := v-infl.
non3sing-9-l := v-infl.
non3sing-10-l := v-infl.
non3sing-11-l :=  v-infl.
non3sing-12-n :=  v-infl.
non3sing-13-n :=  v-infl.

non3sing-14-l :=  v-infl.
non3sing-15-l := v-infl.
non3sing-16-l := v-infl.
non3sing-17-l := v-infl.
non3sing-18-n := v-infl.
non3sing-19-n := v-infl.



 
v20 :=  non3sing-14-l & non3sing-9-l .  
v21 := non3sing-15-l &  non3sing-8-l.
v22 := non3sing-18-n &  non3sing-12-n & past-7-rn .
v23 :=  non3sing-16-l &  non3sing-10-l & past-4-r.
v24 :=   non3sing-17-l & non3sing-11-l  &  past-1-r.
v25 :=  non3sing-19-n &  non3sing-13-n & past-7-rn.


;;;v20-v1 := v-infl.
;;;v22-v7:= v-infl.
;;;v23-v4 := v-infl.
;;;v24-v1 := v-infl.
;;;v25-v7 := v-infl.




;;;
;;; LEXICAL TYPES
;;;






;;;
;;;  LEXEMES
;;;
 

noun-lxm := lexeme & 
[SYNSEM.LOCAL.CAT [ HEAD noun &
			  [TONE tone &
            			[LEX-TONE high-low,
	     			 CONST +]],
		     VAL [ SPEC < >,
			   NCOMPS < >],
		    QVAL qval],
SYNSEM.LOCAL.CONT [HOOK [LTOP #ltop,
			  INDEX #ref-ind &
					[PNG pernum]],
		    RELS < !#1 & noun-relation &
		                     [LBL #ltop,
                                      ARG0 #ref-ind]!>,
		    HCONS <! ! >],
SYNSEM.LKEYS.KEYREL #1 ].

noun-lxm1 := noun-lxm & 
[SYNSEM.LOCAL.CAT [VAL [ SPR < synsem &
					[LOCAL.CAT [ HEAD det]]>,
			    SPEC < >,
			   NCOMPS < >],
		    QVAL qval],
SYNSEM.LOCAL.CONT [HOOK [LTOP #ltop,
			  INDEX #ref-ind &
					[PNG pernum]],
		    RELS < !#1 & noun-relation &
		                     [LBL #ltop,
                                      ARG0 #ref-ind]!>,
		    HCONS <! ! >],
SYNSEM.LKEYS.KEYREL #1 ].

noun-lxm2 := noun-lxm & 
[SYNSEM.LOCAL.CAT [VAL [ SPR < >,
			 SPEC < >,
			 NCOMPS < >],
		    QVAL qval],
SYNSEM.LOCAL.CONT [HOOK [LTOP #ltop,
			  INDEX #ref-ind &
					[PNG pernum]],
		    RELS < !#1 & noun-relation &
		                     [LBL #ltop,
                                      ARG0 #ref-ind]!>,
		    HCONS <! ! >],
SYNSEM.LKEYS.KEYREL #1 ].

oblique-noun-lxm := noun-lxm2 &
[SYNSEM.LOCAL.CAT.HEAD oblique-noun].
			
verb-lxm := lexeme &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high-low,
					 CONST -]] ,
		   VAL [SUBJ <[ ]>],
                   QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX  ref-ind &
					[PNG pernum]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD bool]]],
		      RELS < !#keyrel & relation &
						 [LBL #ltop,
					          ARG0 #event]!>,
		     HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			     [PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].

intrans-verb-lxm := verb-lxm  & arg1-subj-lex-item &
[SYNSEM.LOCAL.CAT[VAL.NCOMPS < >,
		  QVAL intr-valence & [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX ref-ind &
							[PNG #pernum]]]], 
 
SYNSEM.LOCAL.AGR individual &
			     [PNG #pernum]].

intrans-process-verb-lxm := intrans-verb-lxm &arg1-process-subj-lex-item.

oblique-14-verb-lxm := verb-lxm & arg4-obl-lex-item.

trans-verb-lxm := verb-lxm  & arg12-lex-item .

ditrans-verb-lxm := verb-lxm & arg123-lex-item & arg3-iobj-lex-item .

oblique-trans-verb-lxm := verb-lxm  & arg4-obl-lex-item.

;;;resultative-trans-verb-lxm := trans-verb-lxm &
;;;[SYNSEM.LOCAL.CAT[VAL [SUBJ <synsem &
;;;				  [LOCAL.CAT.HEAD noun,
;;;				   LOCAL.CONT.HOOK.INDEX #1 ] >,
;;;			NCOMPS  <canonical-synsem & 
;;;					[LOCAL.CAT.HEAD noun,
;;;				 LOCAL.CONT.HOOK.INDEX  #2 ],
;;;			      		synsem & 
;;;					[LOCAL.CAT[HEAD verb,
;;;						   VAL.SUBJ <[LOCAL.CONT.HOOK.
;;;								INDEX  #2]>]]>,
;;;		        ICOMPS olist],
;;;		 QVAL [SUBJECT synsem &
;;;				  [LOCAL.CAT.HEAD noun,
;;;				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
;;;							[PNG pernum]],
;;;			DOBJ synsem &[LOCAL.CAT.HEAD noun,
;;;			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
;;;							[PNG #pernum]]]], 
;;; SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
;;;		           INDEX #event & [E [TENSE tense]]],
;;;		      RELS < !#keyrel & arg12-relation &
;;;						 [LBL #ltop,
;;;					          ARG0 #event,
;;;						  ARG1 #1,
;;;						  ARG2 #2]!>,
;;;		     HCONS <! ! >],
;;;SYNSEM.LOCAL.AGR individual &
;;;			[PNG #pernum],
;;;SYNSEM.LKEYS.KEYREL #keyrel].


arg1-subj-lex-item := lex-item &
 [SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high-low,
					 CONST -]] ,
		   VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
			  SPR < >,
                          SPEC < >],
                   QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					       MOOD bool]]],
		      RELS < !#keyrel & arg1-relation &
						 [LBL #ltop,
					          ARG0 #event,
						  ARG1 #1]!>,
		     HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			     [PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].

arg1-process-subj-lex-item := arg1-subj-lex-item &
[SYNSEM.LOCAL.CONT.RELS < !arg1-process-eventstruc-relation!>]. 

arg12-lex-item := lex-item &
 [SYNSEM.LOCAL.CAT[VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
			NCOMPS  <canonical-synsem & 
					[LOCAL.CAT.HEAD noun,
				 LOCAL.CONT.HOOK.INDEX  #2 ],...>,
		        ICOMPS olist],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]],
			DOBJ synsem &[LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
							[PNG #pernum]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD bool]]],
		      RELS < !#keyrel & arg12-relation &
						 [LBL #ltop,
					          ARG0 #event,
						  ARG1 #1,
						  ARG2 #2]!>,
		     HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG #pernum],
SYNSEM.LKEYS.KEYREL #keyrel].

arg123-lex-item := lex-item &
 [SYNSEM.LOCAL.CAT[VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
			NCOMPS  <canonical-synsem & 
					[LOCAL.CAT.HEAD noun,
				 LOCAL.CONT.HOOK.INDEX  #3 ],
				 canonical-synsem & 
					[LOCAL.CAT.HEAD noun,
				 LOCAL.CONT.HOOK.INDEX  #2 ]>,
			ICOMPS olist],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]],
			DOBJ synsem &[LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
							[PNG pernum]],
			IOBJ synsem & [LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #3 &  ref-ind &
							[PNG pernum]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD bool]]],
		      RELS < !#keyrel & arg123-relation &
						 [LBL #ltop,
					          ARG0 #event,
						  ARG1 #1,
						  ARG2 #2,
						  ARG3 #3]!>,
		     HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].




arg14-lex-item := lex-item &
[SYNSEM.LOCAL.CAT[VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
			NCOMPS  <canonical-synsem & 
					[LOCAL.CAT.HEAD oblique-noun,
				 LOCAL.CONT.HOOK.INDEX  #2 ]>,
			ICOMPS olist],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]],
			OBL synsem &[LOCAL.CAT.HEAD oblique-noun,
			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
							[PNG pernum]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD bool]]],
		      RELS < !#keyrel & arg14-relation &
						 [LBL #ltop,
					          ARG0 #event,
						  ARG1 #1,
						  ARG4 #2]!>,
		     HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].

;;;arg24-lex-item := lex-item &
;;; [SYNSEM.LOCAL.CAT[VAL [SUBJ <synsem &
;;;				  [LOCAL.CAT.HEAD noun,
;;;				   LOCAL.CONT.HOOK.INDEX #1 ] >,
;;;			NCOMPS  <canonical-synsem & 
;;;					[LOCAL.CAT.HEAD noun,
;;;				 LOCAL.CONT.HOOK.INDEX  #2 ],
;;;				 canonical-synsem & 
;;;					[LOCAL.CAT.HEAD oblique-noun,
;;;				 LOCAL.CONT.HOOK.INDEX  #3 ]>],
;;;		 QVAL [SUBJECT synsem &
;;;				  [LOCAL.CAT.HEAD noun,
;;;				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
;;;							[PNG pernum]],
;;;			DOBJ synsem &[LOCAL.CAT.HEAD noun,
;;;			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
;;;							[PNG pernum]],
;;;			OBL synsem &[LOCAL.CAT.HEAD oblique-noun,
;;;			         LOCAL.CONT.HOOK.INDEX  #3 &  ref-ind &
;;;							[PNG pernum]]]], 
;;; SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
;;;		           INDEX #event & [E [TENSE tense]]],
;;;		      RELS < !#keyrel & arg24-relation &
;;;						 [LBL #ltop,
;;;					          ARG0 #event,
;;;						  ARG1 #1,
;;;						  ARG2 #2,
;;;						  ARG4 #3]!>,
;;;		     HCONS <! ! >],
;;;SYNSEM.LOCAL.AGR individual &
;;;			[PNG pernum],
;;;SYNSEM.LKEYS.KEYREL #keyrel].


arg2-dobj-lex-item := lex-item &
[SYNSEM.LOCAL.CAT[QVAL [DOBJ[LOCAL.CONT.HOOK.INDEX  #2 & ref-ind &
							[PNG pernum]]]],
SYNSEM.LOCAL.CONT[RELS < !#keyrel &  arg2-relation &
					[ARG2 #2]!>,
		 HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].


arg3-iobj-lex-item := lex-item &
[SYNSEM.LOCAL.CAT[QVAL [IOBJ [LOCAL.CONT.HOOK.INDEX  #2 & ref-ind ] ]],
SYNSEM.LOCAL.CONT[RELS <!#keyrel & arg123-relation &
					[ARG3 #2]!>,
		 HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].

arg4-obl-lex-item := lex-item &
[SYNSEM.LOCAL.CAT[QVAL.OBL[LOCAL.CAT.HEAD oblique-noun,
				LOCAL.CONT.HOOK.INDEX  #2 & ref-ind ] ],
SYNSEM.LOCAL.CONT[RELS <!#keyrel & arg4-relation &
					[ARG4 #2]!>,
		 HCONS <! ! >],
SYNSEM.LOCAL.AGR individual &
			[PNG pernum],
SYNSEM.LKEYS.KEYREL #keyrel].


;;;arg4-adobj-lex-item := lex-item &
;;;[SYNSEM.LOCAL.CAT[QVAL [ADOBJ[LOCAL.CONT.HOOK.INDEX  #2 & event ] ]],
;;;SYNSEM.LOCAL.CONT[RELS <!#keyrel & arg4-relation &
;;;					[ARG4 #2]!>,
;;;		 HCONS <! ! >],
;;;SYNSEM.LOCAL.AGR individual &
;;;			[PNG pernum],
;;;SYNSEM.LKEYS.KEYREL #keyrel].



non3sing-verb-lxm := verb-lxm &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE low,
					 CONST -]]],
SYNSEM.LOCAL.AGR individual &
			     [PNG non3sing]].



non3sing-intrans-verb-lxm := non3sing-verb-lxm & intrans-verb-lxm.

non3sing-trans-verb-lxm := non3sing-verb-lxm & trans-verb-lxm.


mod-lex-item := norm-lex-item &
 [SYNSEM.LOCAL.CAT [HEAD head &
                    [MOD < synsem &
				[LOCAL.CAT[HEAD head,
			    	 	   VAL.NCOMPS < >],
			    	 LOCAL.CONT.HOOK[LTOP #ltop,
				            INDEX #1 & event-or-ref-index ]]>],
		    VAL [SUBJ < >,
			 SPR < >,
			 SPEC < >],
		    QVAL qval],
SYNSEM.LOCAL.CONT[HOOK[LTOP #ltop,
			INDEX #event],
                   RELS <! #2 & relation &
				      [LBL #ltop,
		                       ARG0 #event,
				       ARG1 #1]! >,
                   HCONS <! !>],
SYNSEM.LKEYS.KEYREL #2].

adj-lxm := lexeme & mod-lex-item &
  [SYNSEM.LOCAL.CAT [HEAD adj &
		    [MOD < synsem &
				[LOCAL.CAT [HEAD noun,
				            VAL.NCOMPS < >],
			         LOCAL.CONT.HOOK[LTOP #ltop,
				                 INDEX #1 & ref-ind &
						 [PNG #pernum]]]>],
		      VAL [SUBJ < >,
			 SPR < >,
			 SPEC < >,
			 NCOMPS < >],
                      QVAL qval],
SYNSEM.LOCAL.CONT[HOOK[LTOP #ltop,
			INDEX #event ],
                   RELS <! #2 & adj-relation &
				      [LBL #ltop,
				       ARG0 #event,
				       ARG1 #1]! >,
                   HCONS <! !>],
SYNSEM.LOCAL.AGR individual &
			[PNG #pernum],
SYNSEM.LKEYS.KEYREL #2].


;;;
;;; WORD TYPES
;;;


word-lex-rule := inflecting-lex-rule & word &
  [ SYNSEM #synsem,
    DTR[SYNSEM #synsem,
        INFLECTED +],
    INFLECTED + ].


noun-word := word& const-ltow-rule &
[SYNSEM.LOCAL.CAT [ HEAD noun &
			  [TONE tone &
            			[LEX-TONE high-low,
	     			 CONST +]]],
ARGS < noun-lxm >].

noun-word1 := noun-word & 
[ARGS < noun-lxm1>].

noun-word2 := noun-word &
[ARGS <noun-lxm2>].

oblique-noun-word := noun-word &
[SYNSEM.LOCAL.CAT.HEAD oblique-noun,
 ARGS < oblique-noun-lxm>].


3sing-noun-word := noun-word1& 
[SYNSEM.LOCAL.CONT.HOOK [INDEX ref-ind &
					[PNG 3sing]]].

non3sing-noun-word := noun-word1 & 
[SYNSEM.LOCAL.CONT.HOOK [INDEX ref-ind &
					[PNG non3sing]]].


verb-word := word & lex-rule &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high-low,
					 CONST -]]],
SYNSEM.LOCAL.CONT.HOOK.INDEX event & [E[TENSE tense,
				 	MOOD bool]],
ARGS < verb-lxm >].

intrans-verb-word := verb-word &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high,
					 CONST -]]],
ARGS < intrans-verb-lxm >].

intrans-process-verb-word := intrans-verb-word &
 [ARGS <intrans-process-verb-lxm>].

oblique-14-verb-word:=  verb-word &
[ARGS < oblique-14-verb-lxm>].


trans-verb-word := verb-word & 
[ARGS < trans-verb-lxm >].


oblique-trans-verb-word:=  verb-word &
[ARGS < oblique-trans-verb-lxm>].

ditrans-verb-word := verb-word & 
[ARGS < ditrans-verb-lxm >].


past-verb-word1 := verb-word  & lexeme-to-word-rule &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high,
					 CONST -]]],
 SYNSEM.LOCAL.CONT.HOOK.INDEX event & [E [TENSE past,
					  MOOD bool]],
ARGS < verb-lxm>].

past-verb-word2 := verb-word  & infl-ltow-rule &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE high-low,
					 CONST -]]],
 SYNSEM.LOCAL.CONT.HOOK.INDEX event & [E [TENSE past,
					  MOOD bool]],
ARGS < verb-lxm>].


past-infl-verb-word := past-verb-word1 & infl-ltow-rule &
[ARGS  <verb-lxm>].

past-const-verb-word := past-verb-word1 & const-ltow-rule &
[ARGS <verb-lxm>].

oblique-14-past-const-verb-word := oblique-14-verb-word & past-const-verb-word &
[ARGS < oblique-14-verb-lxm>].

intrans-past-infl-verb-word := intrans-verb-word & past-infl-verb-word &
[SYNSEM.LOCAL.CAT.VAL.NCOMPS < >,
ARGS < intrans-verb-lxm>].


non3sing-intrans-past-infl-verb-word := non3sing-intrans-verb-word & past-verb-word2 &
[SYNSEM.LOCAL.CAT.VAL.NCOMPS < >].

trans-past-const-verb-word := trans-verb-word & past-const-verb-word &
[ARGS < trans-verb-lxm>].

;;;resultative-trans-past-const-verb-word := trans-past-const-verb-word &
;;;[ARGS <resultative-trans-verb-lxm>].

oblique-trans-past-const-verb-word := oblique-trans-verb-word & past-const-verb-word .

ditrans-past-const-verb-word := ditrans-verb-word & past-const-verb-word &
[ARGS < ditrans-verb-lxm>].


non-past-const-verb-word := verb-word & const-ltow-rule &
[SYNSEM.LOCAL.CONT.HOOK.INDEX event & [E [TENSE non-past]],
ARGS < verb-lxm>].

intrans-non-past-const-verb-word := intrans-verb-word& non-past-const-verb-word &[ARGS < intrans-verb-lxm>].

trans-non-past-const-verb-word := trans-verb-word & non-past-const-verb-word &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE low,
					 CONST -]]],
ARGS < trans-verb-lxm>].

;;;resultative-trans-non-past-const-verb-word := trans-non-past-const-verb-word ;;;&
;;;[ARGS <resultative-trans-verb-lxm >].

oblique-trans-non-past-const-verb-word := oblique-trans-verb-word & non-past-const-verb-word &
[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE low,
					 CONST -]]],
ARGS < oblique-trans-verb-lxm>].


ditrans-non-past-const-verb-word := ditrans-verb-word & non-past-const-verb-word &[SYNSEM.LOCAL.CAT[HEAD verb &
			    [TONE tone &
					[REL-TONE low,
					 CONST -]]],
ARGS < ditrans-verb-lxm>].

infl-word :=word & infl-ltow-rule.
non3sing-verb-word := verb-word  & infl-ltow-rule &
[ARGS < non3sing-verb-lxm>].

non3sing-intrans-verb-word := non3sing-verb-word &
[ARGS < non3sing-intrans-verb-lxm>].


non3sing-trans-verb-word := non3sing-verb-word &
[ARGS < non3sing-trans-verb-lxm>].

det-word := word & norm-lex-item  & const-ltow-rule &
 [SYNSEM.LOCAL.CAT[ HEAD det &
		     		[DEFINITENESS +],
		    VAL [SPEC <synsem & 
				[LOCAL.CAT.HEAD noun,
				 LOCAL.CONT.HOOK[LTOP #1,
						 INDEX #ref-ind &
			    				  [PNG #pernum]]]>,
                        SUBJ < >,
			SPR < >,
			NCOMPS < >],
                        QVAL qval],
SYNSEM.LOCAL.CONT [HOOK [LTOP #ltop,
			 INDEX #ref-ind],
		     RELS < !#2 & quant-relation &
						 [LBL #ltop,
						  ARG0 #ref-ind &
						  [PNG #pernum],
						  RSTR #3 ]!>,
		     HCONS < ! qeq &
				     [ HARG #3,
				      LARG #1]!>],
SYNSEM.LKEYS.KEYREL #2 ].

3sing-det-word := det-word & 
 [SYNSEM.LOCAL.CONT.HOOK.INDEX ref-ind &
                                       [PNG 3sing]].

non3sing-det-word := det-word & 
[SYNSEM.LOCAL.CONT.HOOK.INDEX ref-ind &
                                       [PNG non3sing]]. 

 
adj-word := word  & const-ltow-rule &
[SYNSEM.LOCAL.CAT.HEAD adj,
ARGS < adj-lxm>].

3sing-adj-word := adj-word  & 
[SYNSEM.LOCAL.AGR individual &
			[PNG 3sing]].

non3sing-adj-word := adj-word  &
[SYNSEM.LOCAL.AGR individual &
			[PNG non3sing]].

prep-word := mod-lex-item & word &  const-ltow-rule &
 [SYNSEM.LOCAL.CAT [HEAD prep &
                    [MOD < synsem &
				     [LOCAL.CAT[HEAD head,
			    	               VAL.NCOMPS < >],
			    	      LOCAL.CONT.HOOK[LTOP #ltop,
				            INDEX #1 & event-or-ref-index ]]>],
		    VAL [SUBJ < >,
			 SPR < >,
			 SPEC < >,
			 NCOMPS <synsem &
				[LOCAL.CONT.HOOK.INDEX ref-ind &
						  [PNG pernum] ]>],
		    QVAL qval],
SYNSEM.LOCAL.CONT[HOOK[LTOP #ltop,
			INDEX #event],
                   RELS <! #2 & prep-mod-relation &
				      [LBL #ltop,
		                       ARG0 #event,
				       ARG1 #1]! >,
                   HCONS <! !>],
SYNSEM.LKEYS.KEYREL #2].

					 	

;;;
;;; CONSTRUCTIONS
;;;
					 	
head-subj-phrase := head-final & basic-head-subj-phrase &
  [SYNSEM.LOCAL.CONT[HOOK[LTOP #mhand,
			 INDEX #event],
		    MSG #message &
			      [PRED proposition_m_rel,
			       LBL  #mhand,
			       MARG #marghand]],
  HEAD-DTR.SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,

				  INDEX #event],
  C-CONT[RELS <!#message!>,
           HCONS <!qeq & 
                       [HARG #marghand,
			LARG #ltop]!>]].


a-mod-phrase := head-adj-int-phrase &
[SYNSEM.LOCAL.CAT [HEAD #noun ,
		   VAL  [SUBJ < >,
			 SPR #spr,
                         SPEC < >,
	 	 	NCOMPS < >],
                    QVAL #qval],
SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
		       INDEX #1 & ref-ind &
			    [PNG pernum]],
HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD #noun,
                          VAL [SUBJ < >,
		               SPR #spr,
			       SPEC < >,
			       NCOMPS #olist],
                          QVAL #qval],
              SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
				     INDEX #1],
NON-HEAD-DTR.SYNSEM.LOCAL.CAT [HEAD adj &
		                     [MOD < synsem &
					[LOCAL.CAT[HEAD #noun,
						   VAL [SUBJ < >,
		        	                        SPR #spr,
                                                        SPEC < >,
    		        				NCOMPS #olist],       
                                                        QVAL #qval],
			                 LOCAL.CONT.HOOK[LTOP #ltop,
							INDEX #1]]>],
		                VAL [SUBJ < >,
			    	     SPR olist,
    		         	     SPEC olist]],	   
C-CONT.HCONS <!!>].


pp-mod-phrase := head-adj-int-phrase & 
[SYNSEM.LOCAL.CAT [HEAD #head ,
		   VAL  [SUBJ #subj,
			 SPR #spr,
                         NCOMPS  < >],
		   QVAL #qval],
SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
		       INDEX #individual],
HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD #head,
                          VAL [SUBJ #subj,
		               SPR #spr,
                               NCOMPS #olist],
                           QVAL #qval],
              SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
				     INDEX #individual],
NON-HEAD-DTR.SYNSEM.LOCAL.CAT [HEAD prep &
		                     [MOD <[LOCAL.CAT[HEAD #head,
						              VAL [SUBJ #subj,
		        	                                   SPR #spr,
                                                                NCOMPS #olist],
								QVAL #qval],
			            	    LOCAL.CONT.HOOK[LTOP #ltop,
						 INDEX #individual]]>],
		           VAL [SPR olist,
			        SPEC < >,
                                NCOMPS list],
                           QVAL qval],
C-CONT.HCONS <!!>].



pp-mod-vp-phrase := pp-mod-phrase &
[SYNSEM.LOCAL.CAT [HEAD #verb ,
		   VAL  [SUBJ <#synsem >,
			 SPR #spr,
                         SPEC < >,
			 NCOMPS < >],
		  QVAL #qval&
			[SUBJECT #synsem]],
SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
		       INDEX #event],		       
SYNSEM.LOCAL.AGR #1 & individual &
		[PNG pernum],
HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD #verb,
                          VAL [SUBJ <#synsem >,
		               SPR #spr,
                               SPEC < >,
                               NCOMPS  #olist],
                               QVAL #qval &
				    [SUBJECT #synsem]],
              SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
				     INDEX #event],
	      SYNSEM.LOCAL.AGR #1,
NON-HEAD-DTR.SYNSEM.LOCAL.CAT [HEAD prep &
		                     [MOD <[LOCAL.CAT[HEAD #verb,
						      VAL [SUBJ <#synsem>,
		        	                            SPR #spr,
                                                             SPEC < >,
                                                             NCOMPS #olist],
                                                             QVAL #qval &
							    [SUBJECT #synsem]],
			                LOCAL.CONT.HOOK[LTOP #ltop,
							INDEX #event],
					LOCAL.AGR #1]>],
		           VAL [SPR olist,
				SPEC < >,
			   	NCOMPS list],
			   QVAL qval],
C-CONT.HCONS <!!>].

pp-mod-n-phrase := pp-mod-phrase &
[SYNSEM.LOCAL.CAT [HEAD #noun ,
		   VAL  [SUBJ < >,
			 SPR #spr,
                         SPEC < >,
			 NCOMPS < >],
		  QVAL #qval],
SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
		       INDEX #ref-ind],		       
SYNSEM.LOCAL.AGR #1 & individual &
		[PNG pernum],
HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD #noun,
                          VAL [SUBJ < >,
		               SPR #spr,
                               SPEC < >,
                               NCOMPS  #olist],
                               QVAL #qval],
              SYNSEM.LOCAL.CONT.HOOK[LTOP #ltop,
				     INDEX #ref-ind],
	      SYNSEM.LOCAL.AGR #1,
NON-HEAD-DTR.SYNSEM.LOCAL.CAT [HEAD prep &
		                     [MOD <[LOCAL.CAT[HEAD #noun,
						      VAL [SUBJ < >,
		        	                            SPR #spr,
                                                             SPEC < >,
                                                             NCOMPS #olist],
                                                             QVAL #qval],
			                LOCAL.CONT.HOOK[LTOP #ltop,
							INDEX #ref-ind],
					LOCAL.AGR #1]>],
		           VAL [SPR olist,
				SPEC < >,
			   	NCOMPS list],
			   QVAL qval],
C-CONT.HCONS <!!>].


verb-serial-compl-phrase := head-ncomp-phrase &
[SYNSEM.LOCAL.CONT.SITPAIR-COND #5 & sitpair-cond,
HEAD-DTR.SYNSEM.LOCAL[CAT[HEAD verb,
			    VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
				NCOMP<[synsem,synsem&
					[LOCAL.CAT.HEAD verb,
					 LOCAL.CONT.HOOK.INDEX #2]]>],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD -]]],
		      RELS < !arg12-relation &
						 [LBL #ltop,
					          ARG0 #event & #3,
						  ARG1 #1]!>,
		     HCONS <! ! >],
NON-HEAD-DTR.SYNSEM synsem & canonical-synsem &
					[LOCAL.CAT[HEAD verb,
						   QVAL.SUBJECT synsem &
							 [LOCAL.CONT.
							HOOK.INDEX  #2]],
					LOCAL.CONT.HOOK.EVENT #event #4 & 
								arg0-relation,
					LOCAL.CONT.SITPAIR-COND # 5& sitpair-cond & 
					[EVENT1 #3& arg0-relation,
					 EVENT2 #4 & arg0-relation,
					 TEMP-REL overlap,
					 TEMPORAL dependent]]].


resultative-verb-serial-compl-phrase := verb-serial-compl-phrase &
[HEAD-DTR.SYNSEM.LOCAL[CAT[HEAD verb,
			    VAL [NCOMP<synsem &[LOCAL.CAT.HEAD noun,
						LOCAL.CONT.HOOK.INDEX #3],
					synsem &[LOCAL.CAT.HEAD verb,
						 LOCAL.CONT.HOOK.INDEX #2]],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]],
			DOBJ synsem &[LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #3 &  ref-ind &
							[PNG pernum]]]]], 
 SYNSEM.LOCAL.CONT[HOOK [LTOP #ltop,
		           INDEX #event & [E [TENSE tense,
					      MOOD -]]],
		      RELS < !arg12-relation &
						 [LBL #ltop,
					          ARG0 #event,
						  ARG2 #3]!>,
		     HCONS <! ! >],
NON-HEAD-DTR.SYNSEM synsem & canonical-synsem &
					[LOCAL.CAT[HEAD verb,
						   QVAL.SUBJECT synsem &
							 [LOCAL.CONT.
							HOOK.INDEX  #2]],
					LOCAL.CONT.HOOK.EVENT #event]].



consequential-vp-vp-serial-mod-verb-phrase := head-adj-phrase &
[SYNSEM.LOCAL[CAT[HEAD verb,
			    VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >]]],
SYNSEM.LOCAL.CONT.HOOK.INDEX #event & [E [TENSE tense,
					  MOOD -]],
HEAD-DTR.SYNSEM.LOCAL[CAT[HEAD verb,
			  VAL [SUBJ <synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 ] >,
				NCOMPS  < >],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1 & ref-ind &
							[PNG pernum]],
			DOBJ synsem &
				[LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #2 &  ref-ind &
							[PNG pernum]]]]], 
 SYNSEM.LOCAL.CONT[HOOK [INDEX #event & [E [TENSE tense,
					    MOOD -]]],
		      RELS < !arg12-relation &
						 [ARG0 #event,
						  ARG1 #1,
						  ARG2 #2 ]!>],
NON-HEAD-DTR.SYNSEM[LOCAL[CAT[HEAD head,
			    VAL [SUBJ <synsem &
				  [LOCAL.CONT.HOOK.INDEX #1 ] >,
				  NCOMPS < >],
		 QVAL [SUBJECT synsem &
				  [LOCAL.CAT.HEAD noun,
				   LOCAL.CONT.HOOK.INDEX #1],
			DOBJ synsem &[LOCAL.CAT.HEAD noun,
			         LOCAL.CONT.HOOK.INDEX  #2]]]]],	 
 SYNSEM.LOCAL.CONT[HOOK [INDEX #event],
		      RELS < !arg12-relation &
						[ARG0 #event,
						  ARG1 #1,
						  ARG2 #2 ]!>],
C-CONT [RELS <! ! >,
	HCONS <! !>]].





;resultative-vp-vp-serial-verb-phrase := head-verb-obj-phrase &
;[HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD verb,
;			   VAL [SUBJ < #1>,
;				NCOMPS < #synsem &
;					 [LOCAL.CAT[HEAD verb,
;						    VAL.SUBJ < #1 & synsem &
;							[LOCAL.CONT.HOOK
;							 [LTOP #ltop,
;							INDEX #ref-ind]]>]]>]],
;	SYNSEM.LOCAL.CONT.HOOK.LTOP #ltop,
;NON-HEAD-DTR.SYNSEM #synsem &
; [LOCAL.CAT.QVAL intr-valence,
; LOCAL.CONT.HOOK.INDEX #ref-ind ]]. 

	
;;;resultative-vp-vp-serial-verb-phrase := head-dobj-phrase &
;;;[HEAD-DTR.SYNSEM.LOCAL.CAT[HEAD verb,
;;;			   VAL [NCOMPS < #synsem &
;;;					 [LOCAL.CAT[HEAD verb,
;;;						    VAL.SUBJ<[LOCAL.CONT.HOOK.
;;;							 INDEX ref-ind]>]]>]],
;;;NON-HEAD-DTR.SYNSEM #synsem & canonical-synsem]. 




head-ncomp-phrase := head-initial& basic-head-ncomp-phrase & phrasal.
head-dobj-phrase := head-initial & basic-head-dobj-phrase.
head-iobj-phrase := head-initial & basic-head-iobj-phrase.
head-obl-phrase   := head-initial & basic-head-obl-phrase.


head-spec-phrase := head-final & basic-head-spec-phrase.
